#pragma once
#include <vector>
#include "PerlinNoise.h"
#include <iostream>
#include <cmath>
#include <cfloat>

using std::vector;

class Clouds {

public:
	Clouds(int cloudCov, float cloudShar, int r, int c);
	Clouds();
	void genBasicHeightMap();
	int getHeightMap(int x, int y);
	int getExponHeightMap(int x, int y);
	~Clouds();

private:
	int exponFun(int v);
	void specialAlgorithm();
	void specialAlgHelper(int x, int y,bool first,int depth);
	void anotherHelperFunction(int x, int y, bool first, int depth);
	void drawExtras(int x,int y);

	//void setVal(int x,int y,int v);
	//int getVal(int x, int y);
	
	vector<vector<int> > heightMap;
	vector<vector<int> > exponHeightMap;
	int rows;
	int cols;
	int origX, origY;
	bool nearby;
	//int heightMap[256][256];
	//int exponHeightMap[256][256];
	int cloudCover;
	float cloudSharpness;

};